package tablut;

public class Coup {
	Pion p;
	int direc, dist, meilleur;
	
	Historique historique;
	
	Coup(Pion pion, int x2, int y2, Plateau plat, Historique historique) {
		int dista;
		p = pion;
		
		// On détermine ici la direction et la distance du mouvement impliqués par les coordonnées en paramètre
		dista = x2 - pion.cas.x;
		if(dista == 0) {
			dista = y2 - pion.cas.y;
			if(dista > 0) {
				direc = Pion.BAS;
				dist = dista;
			}
			else {
				direc = Pion.HAUT;
				dist = -dista;
			}
		}
		else {
			if(dista > 0) {
				direc = Pion.DROITE;
				dist = dista;
			}
			else {
				direc = Pion.GAUCHE;
				dist = -dista;
			}
		}
		
		this.historique = historique;
	}
	
	
	
	// On utilise toString pour envoyer le message de déplacement au serveur.
	public String toString() {
		switch(direc) {
		case Pion.HAUT:
			return p.cas.y + " " + p.cas.x + " " + (p.cas.y - dist) + " " + p.cas.x + '\0';
		case Pion.DROITE:
			return p.cas.y + " " + p.cas.x + " " + p.cas.y + " " + (p.cas.x + dist) + '\0';
		case Pion.BAS:
			return p.cas.y + " " + p.cas.x + " " + (p.cas.y + dist) + " " + p.cas.x + '\0';
		case Pion.GAUCHE:
			return p.cas.y + " " + p.cas.x + " " + p.cas.y + " " + (p.cas.x - dist) + '\0';
		default:
			return null;
		}
	}
}
